The Infiniband® network includes nodes that communicate through a channel-based switched fabric (Infiniband® is a registered trademark of Infiniband Trade Association, located in Beaverton, Oreg.). For example, the nodes may be a host, an input/output subsystem, or a router which connects to another network. The switched fabric is made of a collection of switches, routers, and/or links that connect a set of channel adapters. The channel adapters form an interface between the switched fabric and the nodes. The channel adapter of the host is referred to as a host channel adapter. The channel adapter of an I/O subsystem is referred to as a target channel adapter.
In Infiniband®, two processes communicate using a queue pair (QP). A queue pair includes a send queue and a receive queue. Specifically, in order for a process to send a message to another process, the process posts the message to the send queue located on the host. The host may be a virtualized host including a plurality of virtual machines. The host channel adapter sends the message in the form of packets to the channel adapter having the receive queue. Each packet that is sent may include a packet sequence number. Logic associated with the receive queue ensures that packets are processed in a particular order using the packet sequence number.
In the Infiniband® network, mechanisms for allocation and dellocation of memory regions for a virtualized host are typically provided by software. Because memory address translations from virtual to physical memory are often cached on the channel adapters, deallocation of a host memory region conventionally involves flushing the cache. The region of memory being deallocated is typically unavailable for reuse until after the deallocation process has completed.